package org.esti.model.dao;

import org.esti.model.KnowledgeField;

import java.util.List;

/**
 * @author Artem Loginov (logart)
 */
public interface KnowledgeFieldDAO {

    /**
     * return list of all knowledge fields
     * @return list of knowledge fileds
     */
    List<KnowledgeField> getAllKnowledgeFields();

    /**
     * return specific knowledge filed using id
     * @param id od knowledge field which will be returned
     * @return knowledge filed
     */
    KnowledgeField getKnowledgeFieldById(long id);

    /**
     * cretes new knowledge filed
     * @param knowledgeField which will be stored to DB
     * @return persisted knowledge field instance
     */
    KnowledgeField add(KnowledgeField knowledgeField);

    /**
     * remove knowledge filed by their id
     * @param id of knowledge filed which will be removed
     */
    void remove(long id);
}
